package com.learn.datatype.learnnum;

/**
 * 功能：数字工具
 *
 * @author wsh
 * @date 2020/9/16
 */
public class NumUtil {
    /**
     * 功能：算法——阶乘
     * 定义：一个正整数的阶乘（factorial）是所有小于及等于该数的正整数的积，并且0的阶乘为1。自然数n的阶乘写作n!
     * 公式：n!=1×2×3×...×(n-1)×n，递归方式定义：0!=1，n!=(n-1)!×n
     *
     * @param num
     * @return
     * @author wsh
     * @date 2020/10/12
     */
    public static int calFactorial(int num) {
        int result = 1;

        if (num == 0) {
            // 阶乘有规定：0! = 1
            return result;
        }

        for (int i = num; i > 0; i--) {
            result *= i;
        }

        return result;
    }

    public static void main(String[] args) {
        System.out.println(calFactorial(6));
    }
}
